---
alert-message: ', <a href="http://getbootstrap.com" class="alert-link">http://getbootstrap.com</a>, and <a href="https://github.com/patternfly/patternfly-bootstrap-treeview">https://github.com/patternfly/patternfly-bootstrap-treeview</a>.'
categories: [Widgets]
layout: page
title: Bootstrap Tree View
resource: true
url-js-extra: '//rawgit.com/patternfly/patternfly-bootstrap-treeview/v2.1.3/dist/bootstrap-treeview.min.js'
---
      <div class="row">
        <div class="col-sm-4">
          <h2>Default</h2>
          <div id="treeview1"></div>
        </div><!--/col-->
        <div class="col-sm-4">
          <h2>Collapsed</h2>
          <div id="treeview2"></div>
        </div><!--/col-->
        <div class="col-sm-4">
          <h2>Expanded</h2>
          <div id="treeview3"></div>
        </div><!--/col-->
      </div><!--/row-->
      <div class="row">
        <div class="col-sm-4">
          <h2>Link enabled</h2>
          <div id="treeview4"></div>
        </div><!--/col-->
        <div class="col-sm-4">
          <h2>Events</h2>
          <div id="treeview5"></div>
        </div><!--/col-->
        <div class="col-sm-4">
          <h2>Output</h2>
          <div id="event_output"></div>
        </div><!--/col-->
      </div><!--/row-->
      <div class="row">
        <div class="col-sm-4">
          <h2>JSON Data</h2>
          <div id="treeview6"></div>
        </div><!--/col-->
        <div class="col-sm-4">
          <h2>Checkboxes</h2>
          <div id="treeview7"></div>
        </div><!--/col-->
        <div class="col-sm-4">
          <h2>Hierarchal Checks</h2>
          <div id="treeview8"></div>
        </div><!--/col-->
      </div><!--/row-->
      <div class="row">
        <div class="col-sm-4">
          <h2>Highlight Select</h2>
          <div id="treeview9"></div>
        </div><!--/col-->
        <div class="col-sm-4">
          <h2>Lazy Load</h2>
          <div id="treeview10"></div>
        </div><!--/col-->
        <div class="col-sm-4">
          <h2>Hover and Select</h2>
          <div id="treeview13" class="treeview-pf-hover treeview-pf-select"></div>
        </div><!--/col-->
      </div>
      <div class="row">
        <div class="col-sm-4">
          <h2>Prevent Unselection</h2>
          <div id="treeview11" class="treeview-pf-select"></div>
        </div><!--/col-->
        <div class="col-sm-4">
          <h2>Disabled Nodes</h2>
          <div id="treeview12"></div>
        </div><!--/col-->
      </div><!--/row-->
      <script>
        $(function() {
          //icon options
          var collapseIcon = "fa fa-angle-down",
            expandIcon = "fa fa-angle-right",
            nodeIcon = "fa fa-folder",
            checkedIcon = "fa fa-check-square-o",
            uncheckedIcon = "fa fa-square-o",
            partiallyCheckedIcon = "fa fa-check-square",
            loadingIcon = "glyphicon glyphicon-hourglass";

          var defaultData = [
            {
              text: 'Parent 1',
              href: '#parent1',
              tags: ['4'],
              nodes: [
                {
                  text: 'Child 1',
                  href: '#child1',
                  tags: ['2'],
                  nodes: [
                    {
                      text: 'Grandchild 1',
                      href: '#grandchild1',
                      icon: 'fa fa-file-o',
                      tags: ['0']
                    },
                    {
                      text: 'Grandchild 2',
                      href: '#grandchild2',
                      icon: 'fa fa-file-o',
                      tags: ['0']
                    }
                  ]
                },
                {
                  text: 'Child 2',
                  href: '#child2',
                  icon: 'fa fa-file-o',
                  tags: ['0']
                }
              ]
            },
            {
              text: 'Parent 2',
              href: '#parent2',
              tags: ['0']
            },
            {
              text: 'Parent 3',
              href: '#parent3',
               tags: ['0']
            },
            {
              text: 'Parent 4',
              href: '#parent4',
              tags: ['0']
            },
            {
              text: 'Parent 5',
              href: '#parent5'  ,
              tags: ['0']
            }
          ];
          var json = '[' +
            '{' +
              '"text": "Parent 1",' +
              '"lazyLoad": true,' +
              '"nodes": [' +
                '{' +
                  '"text": "Child 1",' +
                  '"lazyLoad": true,' +
                  '"nodes": [' +
                    '{' +
                      '"icon": "fa fa-file-o",' +
                      '"text": "Grandchild 1"' +
                    '},' +
                    '{' +
                      '"icon": "fa fa-file-o",' +
                      '"text": "Grandchild 2"' +
                    '}' +
                  ']' +
                '},' +
                '{' +
                  '"icon": "fa fa-file-o",' +
                  '"text": "Child 2"' +
                '}' +
              ']' +
            '},' +
            '{' +
              '"text": "Parent 2"' +
            '},' +
            '{' +
              '"text": "Parent 3"' +
            '},' +
            '{' +
              '"text": "Parent 4"' +
            '},' +
            '{' +
              '"text": "Parent 5"' +
            '}' +
          ']';

          //Default
          $('#treeview1').treeview({
            collapseIcon: collapseIcon,
            data: defaultData,
            expandIcon: expandIcon,
            nodeIcon: nodeIcon,
            showBorder: false
          });

          //Collapsed
          $('#treeview2').treeview({
            collapseIcon: collapseIcon,
            data: defaultData,
            expandIcon: expandIcon,
            levels: 1,
            nodeIcon: nodeIcon,
            showBorder: false
          });

          //Expanded
          $('#treeview3').treeview({
            collapseIcon: collapseIcon,
            data: defaultData,
            expandIcon: expandIcon,
            levels: 99,
            nodeIcon: nodeIcon,
            showBorder: false
          });

          //Link Enabled
          $('#treeview4').treeview({
            collapseIcon: collapseIcon,
            data: defaultData,
            enableLinks: true,
            expandIcon: expandIcon,
            levels: 99,
            nodeIcon: nodeIcon,
            showBorder: false
          });

          //Events
          $('#treeview5').treeview({
            collapseIcon: collapseIcon,
            data: defaultData,
            expandIcon: expandIcon,
            levels: 99,
            nodeIcon: nodeIcon,
            showBorder: false,
            onNodeSelected: function(event, node) {
              $('#event_output').prepend('<p>You clicked ' + node.text + '</p>');
            }
          });

          //JSON Data
          $('#treeview6').treeview({
            collapseIcon: collapseIcon,
            data: json,
            expandIcon: expandIcon,
            levels: 99,
            nodeIcon: nodeIcon,
            showBorder: false
          });

          //Checkboxes
          $('#treeview7').treeview({
            collapseIcon: collapseIcon,
            data: json,
            expandIcon: expandIcon,
            levels: 99,
            nodeIcon: nodeIcon,
            checkedIcon: checkedIcon,
            uncheckedIcon: uncheckedIcon,
            partiallyCheckedIcon: partiallyCheckedIcon,
            showBorder: false,
            showCheckbox: true,
            checkboxFirst: true,
            wrapNodeText: true
          });

          //Hierarchal Checks
          $('#treeview8').treeview({
            collapseIcon: collapseIcon,
            data: json,
            expandIcon: expandIcon,
            levels: 99,
            nodeIcon: nodeIcon,
            checkedIcon: checkedIcon,
            uncheckedIcon: uncheckedIcon,
            partiallyCheckedIcon: partiallyCheckedIcon,
            showBorder: false,
            showCheckbox: true,
            hierarchicalCheck: true,
            checkboxFirst: true,
            wrapNodeText: true
          });

          //Highlight Select
          $('#treeview9').treeview({
            collapseIcon: collapseIcon,
            data: json,
            expandIcon: expandIcon,
            levels: 99,
            nodeIcon: nodeIcon,
            checkedIcon: checkedIcon,
            uncheckedIcon: uncheckedIcon,
            partiallyCheckedIcon: partiallyCheckedIcon,
            showBorder: false,
            showCheckbox: true,
            hierarchicalCheck: true,
            checkboxFirst: true,
            wrapNodeText: true,
            highlightChanges: true,
            changedNodeColor: $.pfPaletteColors.black900
          });

          //Lazy Load
          $('#treeview10').treeview({
            collapseIcon: collapseIcon,
            data: json,
            expandIcon: expandIcon,
            levels: 1,
            nodeIcon: nodeIcon,
            showBorder: false,
            wrapNodeText: true,
            loadingIcon: loadingIcon,
            lazyLoad: function(node, callback){
              setTimeout(function() {
                callback([]);
              }, 2000);
            }
          });

          //Prevent Unselection
          $('#treeview11').treeview({
            collapseIcon: collapseIcon,
            data: json,
            expandIcon: expandIcon,
            levels: 99,
            nodeIcon: nodeIcon,
            showBorder: false,
            preventUnselect: true
          });

          //Disabled Nodes
          var tree12 = $('#treeview12').treeview({
            collapseIcon: collapseIcon,
            data: json,
            expandIcon: expandIcon,
            levels: 99,
            nodeIcon: nodeIcon,
            showBorder: false,
            onInitialized: function() {
              tree12.treeview('disableAll');
            }
          });

          //Hover and Select
          $('#treeview13').treeview({
            collapseIcon: collapseIcon,
            data: defaultData,
            expandIcon: expandIcon,
            nodeIcon: nodeIcon,
            showBorder: false
          });

        });
      </script>
